package com.leetcode.normal;

/**
 *
 * */
public class AddTowNumbers {
    static class ListNode{
        int val;
        ListNode next;
        ListNode(int x) { val = x; }
    }
    public static ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        ListNode head = new ListNode(-1);
        int mod = 0;
        int add = 0;
        ListNode node = head;
        while(l1 != null || l2 != null || add >0){
            int value1 = l1==null?0:l1.val;
            int value2 = l2==null?0:l2.val;
            int value = value1 + value2 + add;
            mod = value % 10;
            add = value / 10;

            node.next = new ListNode(mod);
            node = node.next;
            if(l1 != null)
                l1 = l1.next;
            if(l2 != null)
                l2 = l2.next;
        }
        return head.next;
    }

    public static void main(String[] args) {
        ListNode l1 = new ListNode(2);
        l1.next = new ListNode(4);
        l1.next.next = new ListNode(3);

        ListNode l2 = new ListNode(5);
        l2.next = new ListNode(6);
        l2.next.next = new ListNode(4);

        ListNode node = addTwoNumbers(l1,l2);

        while(node!=null){
            System.out.println(node.val);
            node = node.next;
        }
    }
}
